package kotlin05.src.main.java.com.example.kotlin05.s03

/**
 * 93.filter
 *
 *
 * 找素数
 * 除了1 和它本身，不能被任何数整除的数。仅使用几个简单函数，我们就解决这个比较
 * 复杂啊的问题，这就是函数式编程独特魅力：每个函数做一点，组合起来就能干大事
 *
 *
 *
 */

fun main() {

    //除了1和本身无法被其他数整除
    //取模的值等于0，说明能够整除，如果没有一个是等于0的，说明是素数。

    val numbers = listOf(4, 6, 77, 9, 23, 44, 56, 78, 33, 37, 91, 25)

    val primes = numbers.filter { number ->
        (2 until number).map { number % it }
            .none {
                it == 0
            }
    }


    println(primes)


}